package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * KFN项目管理业务对象 kfn_project
 *
 * @author Panda
 * @date 2023-12-20
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class KfnProjectBo extends BaseEntity {

    /**
     * 项目id
     */
    @NotBlank(message = "项目id不能为空", groups = { EditGroup.class })
    private String projectId;

    /**
     * 项目编号
     */
    @NotBlank(message = "项目编号不能为空", groups = { AddGroup.class})
    private String projectNumber;

    /**
     * 项目名
     */
    @NotBlank(message = "项目名不能为空", groups = { AddGroup.class })
    private String projectName;

    /**
     * 项目类型
     */
    @NotBlank(message = "项目类型不能为空", groups = { AddGroup.class })
    private String projectType;

    /**
     * 项目预估价格
     */
    @NotNull(message = "项目预估价格不能为空", groups = { AddGroup.class})
    private BigDecimal projectPrePrice;

    /**
     * 项目实收价格
     */
    private BigDecimal projectPrice;

    /**
     * 备注
     */
    private String remark;

    /**
     * 项目实际开始日期
     */
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date projectStartDate;

    /**
     * 项目实际结束日期
     */
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date projectEndDate;

    /**
     * 项目预计开始日期
     */
    @NotNull(message = "项目预计开始日期不能为空", groups = { AddGroup.class })
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date projectPreStartDate;

    /**
     * 项目预计结束日期
     */
    @NotNull(message = "项目预计结束日期不能为空", groups = { AddGroup.class})
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date projectPreEndDate;

    /**
     * 第三方系统单号
     */
    private String thirdSysNumber;

    /**
     * 关联的客户id
     */
    @NotNull(message = "关联的客户id不能为空", groups = { AddGroup.class })
    private Long customerId;

    /**
     * 关联的客户联系人
     */
    @NotBlank(message = "关联的客户联系人不能为空", groups = { AddGroup.class})
    private String customerContacts;

    /**
     * 关联的客户联系电话
     */
    @NotBlank(message = "关联的客户联系电话不能为空", groups = { AddGroup.class})
    private String customerContactNumber;

    /**
     * 介绍人
     */
    @NotBlank(message = "介绍人不能为空", groups = { AddGroup.class})
    private String customerReferences;


}
